// 変数を初期化 
// 背景の初期位置
var posX = 0;

// スクロールスピード初期値
var speed = 1;

// スクロールスピードの加速値
//デバッグ
//var acc = 5.45;
//本番
var acc = 0.12;

// カウントダウン文字が切り替わる間隔
var duration = 500;

// フレームレート(fps)
var interval = 30;

//成功フラグ
var flg = 0;

//endフラグ
var end = 0;

// 連打防止用
var key_flag = true;

/* キーボードリスナ用変数 */
    // 走る画像のパス
    var run_path = "img/tnz_run_trim.png";

    // 飛ぶ画像のパス
    var jmp_path = "img/tnz_jump_trim.png";

    // 通常画像のパス
    var nor_path = "img/tnz_normal_trim.png";
    
    // 顔面画像のパス
    var kao_path = "img/tnz_face.png";
    
    // ジャンプのスピード
    var jmp_duration = 1000;

    // 着地のスピード
    var cha_duration = 1600;

	//終了時の移動速度
	var end_duration = 0;

/* ゲーム開始時にクリックしたフラグ */

	var tnz_click_flag = false;

/* 開始ルーチン */
$(document).ready(function(){

    // クリックしたらスタート
    $(".object").click(function(){

        if(!(tnz_click_flag)){
            tnz_click_flag = true;
            $("#content").animate({ "opacity": 1 }, duration, function(){

                // カウントダウンアニメーションを開始
                startAnimation();  
  
            });
        }
    });

});

// カウントダウンアニメーション
// 以下、fadeIn,Outしながらカウントダウン処理
// setTimeout関数にてジョブの遅延実行を行う

function startAnimation(){

    // ジャンプ無効
    key_flag = false;
    $(".start").text("Ready..");

    $(".start").fadeIn(duration, function(){ 
        $(this).fadeOut(duration, function(){
            $(this).text("3");
        })
    });

    setTimeout(function(){
        $(".start").fadeIn(duration, function(){
            $(this).fadeOut(duration, function(){
                $(this).text("2");
            })
        })
    }, duration * 2);

    setTimeout(function(){
        $(".start").fadeIn(duration, function(){
            $(this).fadeOut(duration, function(){
                $(this).text("1");
            })
        })
    }, duration * 4);

    setTimeout(function(){
        $(".start").fadeIn(duration, function(){
            $(this).fadeOut(duration, function(){
                $(this).text("Go!!");
            })
        })
    }, duration * 6);

    setTimeout(function(){
        $(".start").fadeIn(duration, function(){
            $(this).fadeOut(duration, function(){
                // ジャンプ有効
                key_flag = true;

                // 上記アニメーション終了後、背景画像のスライドを開始
                slideAnimation();
            })
        })
    }, duration * 8);
}

// アニメーション用関数
function slideAnimation(){

    // 走る！
    $(".object").attr("src", run_path);
    $(".object").css({
        width: "130px",
        left: "830px",
        top: "300px"
    });

    // 1ms毎に背景画像を移動させる関数
    setInterval(function(){

        // スクロールブレーキ
        if(speed > 300){
            speed = 0;
            acc   = 0;
        }
        
        if(posX > 300){
        	acc = 0
        }
        
        if(posX > 990){
        	if(end < 1){
	    		speed = 0;
	            if(flg > 0){
	            	$(".object").css({width: "0px"});
	            	$("div#content").css("background-image","url(img/大成功.png)");
	            	goodAnimation();
	            	flg = 0;
	            	end = 1;
	            }else{
		            badAnimation();
		            end = 1;
	            }
    		}
    	}
        
        function goodAnimation(){
	       // メイン画面のフェードアウト            
	       $("#content").fadeOut(duration * 30, function(){
				// 次回予告画面のフェードイン
				$("#ending").fadeIn(duration, function(){
					$(this).css("background-image", "url(img/undojo_long.png)");
					$(".ending").text("次回予告");
					$(".ending").fadeIn(duration);
					$(".ending1").text("便器をめざせ！");
					$(".ending1").fadeIn(duration * 15);
					$(".ending2").text("超絶☆トイレ我慢レース");
					$(".ending2").fadeIn(duration * 33);
			    }); 
			});
        }
        
        function badAnimation(){
	       // メイン画面のフェードアウト            
	       $("#content").fadeOut(duration * 2, function(){
				// GameOver画面のフェードイン
				$("#failed").fadeIn(duration, function(){
					$(this).css("background-image", "url(img/大失敗.png)");
					$(".failed_msg").text("こうして世界は滅亡してしまった…");
					$(".failed_msg").fadeIn(duration * 6, function(){
						$(this).fadeOut(duration * 4, function(){
							$(this).css("font-size", "105px");
							$(this).text("ＧＡＭＥ ＯＶＥＲ");
							$(this).fadeIn(duration * 3,function(){
								$(this).fadeOut(duration * 12, function(){
									$(this).css("font-size", "60px");
									$(this).text("しばしまたれよ");
									$(this).fadeIn(duration * 6,function(){
										$(this).fadeOut(duration * 10, function(){
											$(this).text("汝に最後のチャンスをやろう");
											$(this).fadeIn(duration * 6, function(){
												// GameOver画面のフェードアウト            
												$("#failed").fadeOut(duration * 4, function(){
													// 次回予告画面のフェードイン
													$("#ending").fadeIn(duration, function(){
														$(this).css("background-image", "url(img/undojo_long.png)");
														$(".ending").text("次回予告");
														$(".ending").fadeIn(duration);
														$(".ending1").text("便器をめざせ！");
														$(".ending1").fadeIn(duration * 15);
														$(".ending2").text("超絶☆トイレ我慢レース");
														$(".ending2").fadeIn(duration * 33);
												    }); 
												});
											});
										});
									});
								});
							});
						});
					});
					
			    }); 
			});
        }
        
        // スクロール加速 
        speed += acc;
        posX  += speed;

        // 背景画像を動かす
        $("#content").css("background-position", posX+"px 0px");

        // デバッグ用オドメータ
        $("p.px_mator").text(posX+" px");

        // デバッグ用スピードメータ
        $("p.ac_mator").text(speed+" px/ms");

    }, interval);
};

// キーボードリスナ関数
$('html').keydown(function(e){

    // 上キー
    switch(e.which)
    {
        case 38:
        // 連打禁止処理
        if(key_flag){
            key_flag = false;
	        if(350 < posX){
	        	if(535 < posX){
		        	if(posX < 640){
		        		speed = 4.5;
		        		// ジャンプ！
		            	$(".object").css("width", "80px");
		            	$(".object").attr("src", jmp_path);
		            	$(".object").animate({top: '-=240px', left: '-=120px'}, jmp_duration, function(){
		                	$(".object").attr("src", nor_path);
		            	});            
		                // 着地！
		            	$(".object").animate({top: '+=240px', left: '-=180px'}, cha_duration, function(){
		                	$(".object").attr("src", run_path);
		                	$(".object").css({
		                    	width: "130px"
		                	});
		            	});
		        		flg = 1;
		        		break;
	        		}else{
		        		// ジャンプ！
		            	$(".object").css("width", "80px");
		            	$(".object").attr("src", jmp_path);
		            	$(".object").animate({top: '-=50px', left: '-=50px'}, jmp_duration, function(){
		                	$(".object").attr("src", nor_path);
		            	});
		            
		                // 着地！
		            	$(".object").animate({top: '+=50px', left: '-=50px'}, jmp_duration, function(){
		                	$(".object").attr("src", run_path);
		                	$(".object").css({
		                    	width: "130px"
		                	});
		            	});
		        		break;
		        	}
	        	}else{
	        		// ジャンプ！
	            	$(".object").css("width", "80px");
	            	$(".object").attr("src", jmp_path);
	            	$(".object").animate({top: '-=50px', left: '-=50px'}, jmp_duration, function(){
	                	$(".object").attr("src", nor_path);
	            	});
	            
	                // 着地！
	            	$(".object").animate({top: '+=50px', left: '-=50px'}, jmp_duration, function(){
	                	$(".object").attr("src", run_path);
	                	$(".object").css({
	                    	width: "130px"
	                	});
	            	});
	        		break;
	        	}
	        }
        }
    }
});


